// package关键字：声明当前类所在的包（文件夹）
// com.itheima.abstract2：包名，通常使用公司域名倒写+项目名+模块名的格式
// 包的作用是组织代码，避免类名冲突
package com.itheima.abstract2;

// public：访问修饰符，表示这个类可以被任何地方访问
// abstract：抽象类关键字，标记这是一个抽象类
// abstract class：抽象类，不能直接实例化（不能创建对象）
// Animal：类名，代表动物这个抽象概念
public abstract class Animal { // 类的开始标记
    // 这是一个注释行，解释了下面抽象方法的作用
    // 每个动物的叫声。
    // public：访问修饰符，表示这个方法可以被任何地方访问
    // abstract：抽象方法关键字，标记这是一个抽象方法
    // void：返回值类型，表示这个方法不返回任何数据
    // cry()：方法名，表示动物的叫声行为
    // 抽象方法没有方法体（没有{...}实现），只有方法签名
    // 抽象方法必须由子类来实现（重写）
    public abstract void cry();
} // Animal类结束标记
